1. Field of the Invention
The present invention relates generally to a wireless communication system using multiple antennas, and in particular, to an apparatus and method for eliminating multi-user interference in a codebook-based Multiple Input Multiple Output (MIMO) system.
2. Description of the Related Art
Unlike the cable channel environment, in a radio channel environment of a wireless communication system errors inevitably occur because of various factors, such as multipath interference, shadowing, propagation attenuation, time-varying noise, and fading, resulting in data loss.
The data loss causes serious distortion of the transmit signals, thus degrading the entire performance of the wireless communication system. To reduce the data loss, various error control techniques are used to increase the reliability of the system according to channel characteristics. A basic technique is to use an error-correcting code.
Meanwhile, diversity techniques are used to reduce multipath fading in the wireless communication system. Examples of the diversity techniques include time diversity, frequency diversity, and antenna diversity.
The antenna diversity schemes using multiple antennas include a receive antenna diversity scheme using a plurality of receive antennas, a transmit antenna diversity scheme using a plurality of transmit antennas, and a MIMO scheme using a plurality of receive antennas and a plurality of transmit antennas.
In MIMO communication systems, receivers can know channel information, but transmitters cannot know channel information. Therefore, in order to improve the performance using channel information, the receivers have to feed the channel information back to the transmitters.
A MIMO system with a transmitter performing pre-coding using the channel information will be described below. Pre-coding is a beamforming process of multiplying a transmit (TX) signal by a weighting factor.
The transmitter multiplies an encoded signal (x) by a beamforming weighting factor (w) and transmits it to a channel. When the encoded signal (x) is a single stream, the beamforming weighting factor (w) consists of beamforming vectors. A signal received by the receiver is expressed as Equation (1):
                    y        =                                                                              E                  S                                                  N                  R                                                      ⁢            Hwx                    +          n                                    (        1        )            where ES, NR, H, and n represent symbol energy, the number of RX antennas, channel, and zero mean Gaussian noise, respectively.
The transceiver finds an optimal beamforming vector (w) prior to the transmission or reception operations and then transmits or receives signals using the optimal beamforming vector (w). The number (NT) of TX antennas, the number (N) of streams, and the number (N) of beamforming vectors determine a beamformer (or a codebook) (W). The beamformer (W) can be designed using “Grassmannian Line Packing”. The beamformer (W) is expressed as Equation (2):W=[w1w2 . . . wN],wi; i=1, . . . , N  (2)where wi represents an ith beamforming vector (NT×1), and the beamformer W is constructed with N beamforming vectors.
Generally, the beamformer (or the codebook) randomly generates the beamforming vectors and calculates a minimum distance between the vectors. Then, the beamformer W is designed using N vectors that make the minimum distance have a maximum value.
Table 1 shows a codebook having four TX antennas, a single stream, and eight beamforming vectors according to the Institute of Electrical and Electronics Engineers (IEEE) 802.16e system. Such a codebook-based system forms antenna beams using the predefined beamforming vectors.
TABLE 1Vector Index12345678Antenna10.37800.37800.37800.37800.37800.37800.37801Antenna0−0.2698−0.71030.2830−0.08410.52470.20580.06182−j0.5668+j0.1326−j0.0940+j0.6478+j0.3532−j0.1369−j0.3332Antenna00.5957−0.23500.07020.01840.4115−0.5211−0.34563+j0.1578−j0.1467−j0.8261+j0.0490+j0.1825j0.0833+j0.5029Antenna00.15870.1371−0.2801−0.32720.26390.6136−0.57044−j0.2411+j0.4893+j0.0491−j0.5662+j0.4299−j0.3755+j0.2113
To find the optimal beamforming vector, the receiver (or terminal) carries out an operation expressed by Equation (3):
                    arg        ⁢                                  ⁢                              min            xbit                    ⁢                                                    E                s                                            N                0                                      ⁢            tr            ⁢                          {                                                (                                                            I                                              N                        t                                                              +                                                                                            E                          s                                                                                                      N                            r                                                    ⁢                                                      N                            0                                                                                              ⁢                                              w                        1                        H                                            ⁢                                              H                        H                                            ⁢                                              Hw                        1                                                                              )                                                  -                  1                                            }                                                          (        3        )            where wl is a beamforming vector selected from the previously known codebook, and I, Nl, Nr, H, Es, and N0 represent an identity matrix, the number of TX antennas, the number of RX antennas, a channel between the transmitter and the receiver, a signal, and a noise, respectively.
The receiver transmits to the transmitter over a feedback channel the beamforming vector (wl) selected by solving Equation (3).
Referring to FIG. 1, the transmitter includes an encoder/modulator 101, a weighting factor multiplier 103, a plurality of antennas 107-1 to 107-NT, and a weighting factor generator 105. The receiver includes a plurality of antennas 109-1 to 109-NR, a MIMO decoder 111, a demodulator/decoder 113, and a codebook selector 115.
In the transmitter, the encoder/modulator 101 encodes outgoing data in accordance with a given coding scheme and generates complex symbols by modulating the encoded data in accordance with a given modulation scheme. The weighting factor generator 105 generates a beamforming vector corresponding to a codebook index fed back from the receiver. That is, the weighting factor generator 105 manages a codebook database and generates the beamforming vector corresponding to the codebook index. The weighting factor multiplier 103 multiplies the complex symbols by the beamforming vector and transmits the resulting signal through the antennas 107-1 to 107-NT.
In the receiver, the MIMO decoder 111 receives signals through the antennas 109-1 to 109-NR. At this point, the signals contain noise components. The MIMO decoder 111 decodes the input vectors using a predetermined MIMO detection method and estimates the vectors transmitted from the transmitter. The demodulator/decoder 113 demodulates and decodes the symbols estimated by the MIMO decoder into original data.
The codebook selector 115 constructs the channel coefficient matrix (H) by estimating the channel using a predetermined signal (e.g., pilot signal) output from the MIMO decoder 111, and searches the optimal beamforming vector using the channel coefficient matrix (H). The codebook information is stored in the memory. Using the beamforming vector and the channel coefficient matrix read from the memory, the codebook selector 115 performs the operation of Equation (3) to select the optimal beamforming vector. Also, the codebook selector 115 feeds back the index of the selected beamforming vector (or the codebook index) to the transmitter over the feedback channel. Because the transmitter also has the codebook information, only the index of the beamforming vector is fed back. Thus, size of the feedback information can be reduced because only the index of the beamforming vector is transmitted. As an example, when the codebook is designed using eight beamforming vectors, the index can be expressed in 3 bits.
As described above, the existing codebook-based (or quantization-based) system is configured considering a single user. Therefore, when the system of FIG. 1 is expanded to provide the service to multi-users, the multi-user interference occurs together with the quantization error, thus degrading the system's performance.
It can be seen from FIG. 2 that the system performance (bit error rate (BER) in the same signal to noise ratio (SNR)) is greatly increased as the number of the users increases. The performance of the conventional quantization-based system depends on the performance of the maximum ratio transmission (MRT). In the MRT system, however, there are no approaches that can reduce the influence of the multi-user interference in the multi-user environment. Thus, if the MRT system provides the service to multi-users, the system performance is greatly reduced as illustrated in FIG. 2.